An example prior art transform generator 10 is shown in FIG. 1. The prior art transform generator 10 has a data register (shift register) 12 and an intermediate remainder register 14. The specific generator of FIG. 1 is designed to calculate a cyclical redundancy code (CRC-16). The plurality of registers 16 in the intermediate remainder register 14 are strategically coupled by a plurality of exclusive OR's 18. The data bits are shifted out of the data register 12 and into the intermediate register 14. When the data bits have been completely shifted into the intermediate register 14, the intermediate register contains the CRC associated with the data bits. Transform generators have also been encoded in software. Emulating the hardware proved to be an inefficient method of generating transforms in software, so software schemes generally use look up tables to calculate the transform one byte or nibble (4-bits) at a time. The table could be set up for any size of data quanta's (e.g., 1 bit, 10 bits, etc.).
Packetizers use transform generators to calculate CRCs for newly formed data packets. A packetizer receives packets (data) from a variety of sources. These received packets are then grouped according to their ultimate destination. If two small packets have the same destination they are combined into one packet and then transmitted to the destination. In prior art applications the packetizer removes the CRCs from both packets and then recalculates the CRC based on the combined data of both packets. In other scenarios the packetizer might receive one large packet that needs to be broken into two smaller packets. In prior art applications the large packet's CRC would be thrown away and a new CRC calculated from scratch for both of the smaller packets. This process is inefficient since the CRCs from the received packets contain useful information in calculating the CRCs for the outgoing packets.
A transform generator is also used in associative memories. The transform generator calculates the hashing code or polynomial code (see U.S. Pat. No. 4,527,239 Brandin) to determine the address of a data packet. When a data packet is a combination of two earlier packets prior art associative memories calculate a new transform (address) for the new data packet from scratch. Processing advantages can be achieved by a transform generator that could use the old transforms to calculate a new transform.
Thus there exists a need for a transform generator that can generater a new transform from existing transforms without using the underlying data.